++p -> 成员这句话,++不执行,对吗?

来源:百度知道 编辑:UC知道 时间:2024/06/03 18:26:27
++p -> 成员这句话,++不执行,对吗?

******************************************************************
#include <iostream>
#include < string.h >
using namespace std;

struct STU
{
char num[10] ;
float score[3] ;
} ;

void main( void )
{
struct STU s[3] = { {"20021", 70,71,72 }, {"20022", 80,81,82}, {"20023", 90,91,92} } , *p = s + 1 ;
int i ;
float sum = 0.0 ;
printf ( "%s\n", p->num ) ;
for ( i = 0 ; i < 2 ; i ++ ) { sum = sum + ( ++p -> score[i] ) ; printf ("%s\n", p->num ) ; }
printf( "%f\n", sum ) ;
}
只是想证实下

++p -> score[i]

考虑优先级,就是 ++(p->score[i]) 而不是 (++p)->score[i]

执行了啊,它先取出p -> score[i],80,然后执行++,就是81了;
循环体执行两次,所以sum=81+82=163

你想达到什么效果,说清楚帮你改